<?php
/*
	用户数据模型
*/
class user_model extends Base_Model{

	public function __construct(){
		$this->load->database();
	}
	
	/**
	 *查询所有用户
	 * @return obj/false
	 */
	 public function get_all_users(){
		 
		 $query = $this->db->select( 'user.id,uid,user.name,user_group.name as group, user.ctime,canlog' )->from( 'user' )->join( 'user_group', 'user.group=user_group.id', 'left' )->get();
		 return $query->result();
		 
	 }

	/**
	 *查询【管理员】用户by uid
	 * @param string uid
	 * @return obj/false
	 */
	public function get_admin_by_uid( $uid ){

		return $this->db->get_where( 'user', array( 'uid'=>$uid, 'group'=>1 ) )->row();

	}
	/**
	 * 查询用户by uid
	 * @param string id
	 * @return obj/false
	 */
	public function get_user_by_uid( $uid ){

		return $this->db->get_where( 'user', array( 'uid'=>$uid ) )->row();

	}
	
	/* 
	 * 查询用户 by id
	 * @param string 用户id
	 * @return obj/false
	 */
	public function get_user_by_id( $id ){
		
		return $this->db->get_where( 'user', array('id'=>$id) )->row();
	}
	
	/**
	 * 修改用户信息
	 * @param $id int 用户id
	 * @param $info array 包含用户信息的数组
	 * @return bool
	 * */
	public function edit_user( $id, $info ){
		
		return $this->db->where( 'id', $id )->update( 'user', $info );
	}
	/**
	 * 删除用户
	 * @param $id int 用户的id
	 * @return bool
	 * */
	public function del_user( $id ){
		
		return $this->db->delete( 'user', array( 'id'=>$id ) );
	}
	
	/* 
	 *查询所有用户组
	 * @return obj/false
	 */
	public function get_all_groups(){
		
		return $this->db->get( 'user_group' )->result();
	}
	 
	/* 
	 *查询用户组 by name
	 * @param string 用户组名
	 * @return obj/false
	 */
	public function get_group_by_name( $name ){
		
		return $this->db->get_where( 'user_group', array('name'=>$name ) )->result();
	}
	
	/* 
	 *查询用户组 by id
	 * @param string 用户组名
	 * @return array/false
	 */
	public function get_group_by_id( $id ){
		
		return $this->db->get_where( 'user_group', array('id'=>$id ) )->row_array();
	}
	
	/* 
	 *添加用户组
	 * @return bool
	 */
	 public function add_group( $group ){
		 
		return $this->db->insert( 'user_group', $group );
	 }
	 
	 /* 
	 * 删除用户组 by id
	 * @param int 用户组id
	 * @return bool
	 */
	 public function del_group( $id ){
		 
		$this->db->delete( 'user_group', array( 'id'=>$id ) );
		if( $this->db->affected_nums() )
			return true;
		else
			return false;
	 }
	 
	 /**
	  * 修改用户组
	  * @param int 用户组id
	  * @param array 要修改的信息
	  * */
	public function edit_group( $id, $data ){
		
		return $this->db->where( 'id', $id )->update( 'user_group', $data );
	}


}
